home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / Xm / XmDrawingArea.z / XmDrawingArea
Text File  |  1998-10-30  |  42KB  |  661 lines

  1.  
  2.  
  3.  
  4.      XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.           XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa - The DrawingArea widget class
  10.  
  11.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.           #include <Xm/DrawingA.h>
  13.  
  14.      VVVVEEEERRRRSSSSIIIIOOOONNNN
  15.           This page documents Motif 2.1.
  16.  
  17.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  18.           DrawingArea is an empty widget that is easily adaptable to a
  19.           variety of purposes.  It does no drawing and defines no
  20.           behavior except for invoking callbacks.  Callbacks notify
  21.           the application when graphics need to be drawn (exposure
  22.           events or widget resize) and when the widget receives input
  23.           from the keyboard or mouse.
  24.  
  25.           Applications are responsible for defining appearance and
  26.           behavior as needed in response to DrawingArea callbacks.
  27.  
  28.           DrawingArea is also a composite widget and subclass of
  29.           XXXXmmmmMMMMaaaannnnaaaaggggeeeerrrr that supports minimal geometry management for
  30.           multiple widget or gadget children.
  31.  
  32.           DrawingArea uses the XXXXmmmmNNNNiiiinnnniiiittttiiiiaaaallllFFFFooooccccuuuussss resource of XXXXmmmmMMMMaaaannnnaaaaggggeeeerrrrto
  33.           define whether or not DrawingArea will receive focus when it
  34.           is traversed to, even if it has traversable children. If
  35.           XXXXmmmmNNNNiiiinnnniiiittttiiiiaaaallllFFFFooooccccuuuussss is NULL, DrawingArea receives focus only if
  36.           it does not have any traversable children. If
  37.           XXXXmmmmNNNNiiiinnnniiiittttiiiiaaaallllFFFFooooccccuuuussss is not NULL, then DrawingArea receives focus
  38.           when traversed to. In the latter case, the application first
  39.           needs to be able to realize that the DrawingArea will
  40.           receive focus, then, as appropriate, needs to either call
  41.           the XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll function for the desired child, or to
  42.           navigate across the private DrawingArea graphics objects.
  43.  
  44.           The following resources are not currently used by the
  45.           DrawingArea widget: XXXXmmmmNNNNsssshhhhaaaaddddoooowwwwTTTThhhhiiiicccckkkknnnneeeessssssss, XXXXmmmmNNNNttttooooppppSSSShhhhaaaaddddoooowwwwPPPPiiiixxxxmmmmaaaapppp,
  46.           XXXXmmmmNNNNbbbboooottttttttoooommmmSSSShhhhaaaaddddoooowwwwPPPPiiiixxxxmmmmaaaapppp, XXXXmmmmNNNNttttooooppppSSSShhhhaaaaddddoooowwwwCCCCoooolllloooorrrr, and
  47.           XXXXmmmmNNNNbbbboooottttttttoooommmmSSSShhhhaaaaddddoooowwwwCCCCoooolllloooorrrr
  48.  
  49.         DDDDaaaattttaaaa TTTTrrrraaaannnnssssffffeeeerrrr BBBBeeeehhhhaaaavvvviiiioooorrrr
  50.           DrawingArea has no widget class conversion or destination
  51.           procedure.  Subclasses and the XXXXmmmmNNNNccccoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkk procedures
  52.           are responsible for any conversion of selections.
  53.           Subclasses and the XXXXmmmmNNNNddddeeeessssttttiiiinnnnaaaattttiiiioooonnnnCCCCaaaallllllllbbbbaaaacccckkkk procedures are
  54.           responsible for any data transfers to the widget.
  55.  
  56.         CCCCllllaaaasssssssseeeessss
  57.           DrawingArea inherits behavior and resources from the CCCCoooorrrreeee,
  58.           CCCCoooommmmppppoooossssiiiitttteeee, CCCCoooonnnnssssttttrrrraaaaiiiinnnntttt, and XXXXmmmmMMMMaaaannnnaaaaggggeeeerrrr classes.
  59.  
  60.  
  61.  
  62.  
  63.      Page 1                                         (printed 10/24/98)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))
  71.  
  72.  
  73.  
  74.           The class pointer is _x_m_D_r_a_w_i_n_g_A_r_e_a_W_i_d_g_e_t_C_l_a_s_s.
  75.  
  76.           The class name is XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa.
  77.  
  78.         NNNNeeeewwww RRRReeeessssoooouuuurrrrcccceeeessss
  79.           The following table defines a set of widget resources used
  80.           by the programmer to specify data. The programmer can also
  81.           set the resource values for the inherited classes to set
  82.           attributes for this widget. To reference a resource by name
  83.           or by class in a ....XXXXddddeeeeffffaaaauuuullllttttssss file, remove the XXXXmmmmNNNN or XXXXmmmmCCCC
  84.           prefix and use the remaining letters. To specify one of the
  85.           defined values for a resource in a ....XXXXddddeeeeffffaaaauuuullllttttssss file, remove
  86.           the XXXXmmmm prefix and use the remaining letters (in either
  87.           lowercase or uppercase, but include any underscores between
  88.           words).  The codes in the access column indicate if the
  89.           given resource can be set at creation time (C), set by using
  90.           XXXXttttSSSSeeeettttVVVVaaaalllluuuueeeessss (S), retrieved by using XXXXttttGGGGeeeettttVVVVaaaalllluuuueeeessss (G), or is
  91.           not applicable (N/A).
  92.  
  93.                                      XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt
  94.           NNNNaaaammmmeeee                     CCCCllllaaaassssssss             TTTTyyyyppppeeee             DDDDeeeeffffaaaauuuulllltttt        AAAAcccccccceeeessssssss
  95.           XmNconvertCallback       XmCCallback       XtCallbackList   NULL           C
  96.           XmNdestinationCallback   XmCCallback       XtCallbackList   NULL           C
  97.           XmNexposeCallback        XmCCallback       XtCallbackList   NULL           C
  98.           XmNinputCallback         XmCCallback       XtCallbackList   NULL           C
  99.           XmNmarginHeight          XmCMarginHeight   Dimension        10             CSG
  100.           XmNmarginWidth           XmCMarginWidth    Dimension        10             CSG
  101.           XmNresizeCallback        XmCCallback       XtCallbackList   NULL           C
  102.           XmNresizePolicy          XmCResizePolicy   unsigned char    XmRESIZE_ANY   CSG
  103.  
  104.           XXXXmmmmNNNNccccoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkk
  105.                     Specifies a list of callbacks called when the
  106.                     DrawingArea is asked to convert a selection.  The
  107.                     type of the structure whose address is passed to
  108.                     these callbacks is XXXXmmmmCCCCoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt.  The
  109.                     reason is XXXXmmmmCCCCRRRR____OOOOKKKK.
  110.  
  111.           XXXXmmmmNNNNddddeeeessssttttiiiinnnnaaaattttiiiioooonnnnCCCCaaaallllllllbbbbaaaacccckkkk
  112.                     Specifies a list of callbacks called when the
  113.                     DrawingArea is the destination of a transfer
  114.                     operation.  The type of the structure whose
  115.                     address is passed to these callbacks is
  116.                     XXXXmmmmDDDDeeeessssttttiiiinnnnaaaattttiiiioooonnnnCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt.  The reason is
  117.                     XXXXmmmmCCCCRRRR____OOOOKKKK.
  118.  
  119.           XXXXmmmmNNNNeeeexxxxppppoooosssseeeeCCCCaaaallllllllbbbbaaaacccckkkk
  120.                     Specifies the list of callbacks that is called
  121.                     when DrawingArea receives an exposure event.  The
  122.                     callback reason is XXXXmmmmCCCCRRRR____EEEEXXXXPPPPOOOOSSSSEEEE.  The callback
  123.                     structure also includes the exposure event.
  124.  
  125.                     The default bit gravity for Manager windows is
  126.  
  127.  
  128.  
  129.      Page 2                                         (printed 10/24/98)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))
  137.  
  138.  
  139.  
  140.                     NNNNoooorrrrtttthhhhWWWWeeeessssttttGGGGrrrraaaavvvviiiittttyyyy.  This may cause the
  141.                     XXXXmmmmNNNNeeeexxxxppppoooosssseeeeCCCCaaaallllllllbbbbaaaacccckkkk procedures not to be invoked
  142.                     when the DrawingArea window is made smaller.
  143.  
  144.           XXXXmmmmNNNNiiiinnnnppppuuuuttttCCCCaaaallllllllbbbbaaaacccckkkk
  145.                     Specifies the list of callbacks that is called
  146.                     when the DrawingArea receives a keyboard or mouse
  147.                     event (key or button, up or down).  The callback
  148.                     reason is XXXXmmmmCCCCRRRR____IIIINNNNPPPPUUUUTTTT.  The callback structure also
  149.                     includes the input event.
  150.  
  151.           XXXXmmmmNNNNmmmmaaaarrrrggggiiiinnnnHHHHeeeeiiiigggghhhhtttt
  152.                     Specifies the minimum spacing in pixels between
  153.                     the top or bottom edge of DrawingArea and any
  154.                     child widget.
  155.  
  156.           XXXXmmmmNNNNmmmmaaaarrrrggggiiiinnnnWWWWiiiiddddtttthhhh
  157.                     Specifies the minimum spacing in pixels between
  158.                     the left or right edge of DrawingArea and any
  159.                     child widget.
  160.  
  161.           XXXXmmmmNNNNrrrreeeessssiiiizzzzeeeeCCCCaaaallllllllbbbbaaaacccckkkk
  162.                     Specifies the list of callbacks that is called
  163.                     when the DrawingArea is resized.  The callback
  164.                     reason is XXXXmmmmCCCCRRRR____RRRREEEESSSSIIIIZZZZEEEE.
  165.  
  166.           XXXXmmmmNNNNrrrreeeessssiiiizzzzeeeePPPPoooolllliiiiccccyyyy
  167.                     Controls the policy for resizing DrawingArea
  168.                     widgets.  Possible values include XXXXmmmmRRRREEEESSSSIIIIZZZZEEEE____NNNNOOOONNNNEEEE
  169.                     (fixed size), XXXXmmmmRRRREEEESSSSIIIIZZZZEEEE____AAAANNNNYYYY (shrink or grow as
  170.                     needed), and XXXXmmmmRRRREEEESSSSIIIIZZZZEEEE____GGGGRRRROOOOWWWW (grow only).
  171.  
  172.         IIIInnnnhhhheeeerrrriiiitttteeeedddd RRRReeeessssoooouuuurrrrcccceeeessss
  173.           DrawingArea inherits behavior and resources from the
  174.           following superclasses. For a complete description of each
  175.           resource, refer to the reference page for that superclass.
  176.  
  177.                                                 XXXXmmmmMMMMaaaannnnaaaaggggeeeerrrr RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt
  178.           NNNNaaaammmmeeee                      CCCCllllaaaassssssss                   TTTTyyyyppppeeee                DDDDeeeeffffaaaauuuulllltttt                AAAAcccccccceeeessssssss
  179.           XmNbottomShadowColor      XmCBottomShadowColor    Pixel               dynamic                CSG
  180.           XmNbottomShadowPixmap     XmCBottomShadowPixmap   Pixmap              XmUNSPECIFIED_PIXMAP   CSG
  181.           XmNforeground             XmCForeground           Pixel               dynamic                CSG
  182.           XmNhelpCallback           XmCCallback             XtCallbackList      NULL                   C
  183.           XmNhighlightColor         XmCHighlightColor       Pixel               dynamic                CSG
  184.           XmNhighlightPixmap        XmCHighlightPixmap      Pixmap              dynamic                CSG
  185.           XmNinitialFocus           XmCInitialFocus         Widget              NULL                   CSG
  186.           XmNlayoutDirection        XmCLayoutDirection      XmDirection         dynamic                CG
  187.           XmNnavigationType         XmCNavigationType       XmNavigationType    XmTAB_GROUP            CSG
  188.           XmNpopupHandlerCallback   XmCCallback             XtCallbackList      NULL                   C
  189.           XmNshadowThickness        XmCShadowThickness      Dimension           0                      CSG
  190.  
  191.  
  192.  
  193.  
  194.  
  195.      Page 3                                         (printed 10/24/98)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))
  203.  
  204.  
  205.  
  206.           XmNstringDirection        XmCStringDirection      XmStringDirection   dynamic                CG
  207.           XmNtopShadowColor         XmCTopShadowColor       Pixel               dynamic                CSG
  208.           XmNtopShadowPixmap        XmCTopShadowPixmap      Pixmap              dynamic                CSG
  209.           XmNtraversalOn            XmCTraversalOn          Boolean             True                   CSG
  210.           XmNunitType               XmCUnitType             unsigned char       dynamic                CSG
  211.           XmNuserData               XmCUserData             XtPointer           NULL                   CSG
  212.  
  213.                                   CCCCoooommmmppppoooossssiiiitttteeee RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt
  214.           NNNNaaaammmmeeee                CCCCllllaaaassssssss               TTTTyyyyppppeeee          DDDDeeeeffffaaaauuuulllltttt   AAAAcccccccceeeessssssss
  215.           XmNchildren         XmCReadOnly         WidgetList    NULL      G
  216.           XmNinsertPosition   XmCInsertPosition   XtOrderProc   NULL      CSG
  217.           XmNnumChildren      XmCReadOnly         Cardinal      0         G
  218.  
  219.                                                         CCCCoooorrrreeee RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt
  220.           NNNNaaaammmmeeee                            CCCCllllaaaassssssss                           TTTTyyyyppppeeee             DDDDeeeeffffaaaauuuulllltttt                AAAAcccccccceeeessssssss
  221.           XmNaccelerators                 XmCAccelerators                 XtAccelerators   dynamic                CSG
  222.           XmNancestorSensitive            XmCSensitive                    Boolean          dynamic                G
  223.           XmNbackground                   XmCBackground                   Pixel            dynamic                CSG
  224.           XmNbackgroundPixmap             XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
  225.           XmNborderColor                  XmCBorderColor                  Pixel            XtDefaultForeground    CSG
  226.           XmNborderPixmap                 XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
  227.           XmNborderWidth                  XmCBorderWidth                  Dimension        0                      CSG
  228.           XmNcolormap                     XmCColormap                     Colormap         dynamic                CG
  229.           XmNdepth                        XmCDepth                        int              dynamic                CG
  230.           XmNdestroyCallback              XmCCallback                     XtCallbackList   NULL                   C
  231.           XmNheight                       XmCHeight                       Dimension        dynamic                CSG
  232.           XmNinitialResourcesPersistent   XmCInitialResourcesPersistent   Boolean          True                   C
  233.           XmNmappedWhenManaged            XmCMappedWhenManaged            Boolean          True                   CSG
  234.           XmNscreen                       XmCScreen                       Screen *         dynamic                CG
  235.           XmNsensitive                    XmCSensitive                    Boolean          True                   CSG
  236.           XmNtranslations                 XmCTranslations                 XtTranslations   dynamic                CSG
  237.           XmNwidth                        XmCWidth                        Dimension        dynamic                CSG
  238.           XmNx                            XmCPosition                     Position         0                      CSG
  239.           XmNy                            XmCPosition                     Position         0                      CSG
  240.  
  241.         CCCCaaaallllllllbbbbaaaacccckkkk IIIInnnnffffoooorrrrmmmmaaaattttiiiioooonnnn
  242.           A pointer to the following structure is passed to the
  243.           XXXXmmmmNNNNeeeexxxxppppoooosssseeeeCCCCaaaallllllllbbbbaaaacccckkkk, XXXXmmmmNNNNiiiinnnnppppuuuuttttCCCCaaaallllllllbbbbaaaacccckkkk, and XXXXmmmmNNNNrrrreeeessssiiiizzzzeeeeCCCCaaaallllllllbbbbaaaacccckkkk
  244.           procedures:
  245.  
  246.           typedef struct
  247.           {
  248.                   int _r_e_a_s_o_n;
  249.                   XEvent * _e_v_e_n_t;
  250.                   Window _w_i_n_d_o_w;
  251.           } XmDrawingAreaCallbackStruct;
  252.  
  253.           _r_e_a_s_o_n    Indicates why the callback was invoked.
  254.  
  255.           _e_v_e_n_t     Points to the _X_E_v_e_n_t that triggered the callback.
  256.                     This is NULL for the XXXXmmmmNNNNrrrreeeessssiiiizzzzeeeeCCCCaaaallllllllbbbbaaaacccckkkk.
  257.  
  258.  
  259.  
  260.  
  261.      Page 4                                         (printed 10/24/98)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))
  269.  
  270.  
  271.  
  272.           _w_i_n_d_o_w    Is set to the widget window.
  273.  
  274.           A pointer to the following structure is passed to the
  275.           XXXXmmmmNNNNccccoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkk procedures:
  276.  
  277.           typedef struct
  278.           {
  279.                   int _r_e_a_s_o_n;
  280.                   XEvent *_e_v_e_n_t;
  281.                   Atom _s_e_l_e_c_t_i_o_n;
  282.                   Atom _t_a_r_g_e_t;
  283.                   XtPointer _s_o_u_r_c_e__d_a_t_a;
  284.                   XtPointer _l_o_c_a_t_i_o_n__d_a_t_a;
  285.                   int _f_l_a_g_s;
  286.                   XtPointer _p_a_r_m;
  287.                   int _p_a_r_m__f_o_r_m_a_t;
  288.                   unsigned long _p_a_r_m__l_e_n_g_t_h;
  289.                   int _s_t_a_t_u_s;
  290.                   XtPointer _v_a_l_u_e;
  291.                   Atom _t_y_p_e;
  292.                   int _f_o_r_m_a_t;
  293.                   unsigned long _l_e_n_g_t_h;
  294.           } XmConvertCallbackStruct;
  295.  
  296.           _r_e_a_s_o_n    Indicates why the callback was invoked.
  297.  
  298.           _e_v_e_n_t     Points to the _X_E_v_e_n_t that triggered the callback.
  299.                     It can be NULL.
  300.  
  301.           _s_e_l_e_c_t_i_o_n Indicates the selection for which conversion is
  302.                     being requested.  Possible values are _C_L_I_P_B_O_A_R_D,
  303.                     _P_R_I_M_A_R_Y, _S_E_C_O_N_D_A_R_Y, and ____MMMMOOOOTTTTIIIIFFFF____DDDDRRRROOOOPPPP.
  304.  
  305.           _t_a_r_g_e_t    Indicates the conversion target.
  306.  
  307.           _s_o_u_r_c_e__d_a_t_a
  308.                     Contains information about the selection source.
  309.                     When the selection is ____MMMMOOOOTTTTIIIIFFFF____DDDDRRRROOOOPPPP, _s_o_u_r_c_e__d_a_t_a is
  310.                     the DragContext.  Otherwise, it is NULL.
  311.  
  312.           llllooooccccaaaattttiiiioooonnnn____ddddaaaattttaaaa
  313.                     Contains information about the location of data to
  314.                     be converted.  If the value is NULL, the data to
  315.                     be transferred consists of the widget's current
  316.                     selection.
  317.  
  318.           _f_l_a_g_s     Indicates the status of the conversion. Following
  319.                     are the possible values:
  320.  
  321.                     XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____NNNNOOOONNNNEEEE
  322.                               This flag is currently unused.
  323.  
  324.  
  325.  
  326.  
  327.      Page 5                                         (printed 10/24/98)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))
  335.  
  336.  
  337.  
  338.                     XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____PPPPAAAARRRRTTTTIIIIAAAALLLL
  339.                               The target widget was able to be
  340.                               converted, but some data was lost.
  341.  
  342.                     XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____SSSSAAAAMMMMEEEE
  343.                               The conversion target is the source of
  344.                               the data to be transferred.
  345.  
  346.                     XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____TTTTRRRRAAAANNNNSSSSAAAACCCCTTTT
  347.                               This flag is currently unused.
  348.  
  349.           _p_a_r_m      Contains parameter data for this target.  If no
  350.                     parameter data exists, the value is NULL.
  351.  
  352.                     When _s_e_l_e_c_t_i_o_n is _C_L_I_P_B_O_A_R_D and _t_a_r_g_e_t is
  353.                     ____MMMMOOOOTTTTIIIIFFFF____CCCCLLLLIIIIPPPPBBBBOOOOAAAARRRRDDDD____TTTTAAAARRRRGGGGEEEETTTTSSSS or
  354.                     ____MMMMOOOOTTTTIIIIFFFF____DDDDEEEEFFFFEEEERRRRRRRREEEEDDDD____CCCCLLLLIIIIPPPPBBBBOOOOAAAARRRRDDDD____TTTTAAAARRRRGGGGEEEETTTTSSSS, the value is
  355.                     the requested operation (XXXXmmmmCCCCOOOOPPPPYYYY, XXXXmmmmMMMMOOOOVVVVEEEE, or
  356.                     XXXXmmmmLLLLIIIINNNNKKKK).
  357.  
  358.           _p_a_r_m__f_o_r_m_a_t
  359.                     Specifies whether the data in _p_a_r_m should be
  360.                     viewed as a list of _c_h_a_r, _s_h_o_r_t, or _l_o_n_g
  361.                     quantities.  Possible values are 0 (when _p_a_r_m is
  362.                     NULL), 8 (when the data in _p_a_r_m should be viewed
  363.                     as a list of _c_h_a_rs), 16 (when the data in _p_a_r_m
  364.                     should be viewed as a list of _s_h_o_r_ts), or 32 (when
  365.                     the data in _p_a_r_m should be viewed as a list of
  366.                     _l_o_n_gs).  Note that _p_a_r_m__f_o_r_m_a_t symbolizes a data
  367.                     type, not the number of bits in each list element.
  368.                     For example, on some machines, a _p_a_r_m__f_o_r_m_a_t of 32
  369.                     means that the data in _p_a_r_m should be viewed as a
  370.                     list of 64-bit quantities, not 32-bit quantities.
  371.  
  372.           _p_a_r_m__l_e_n_g_t_h
  373.                     Specifies the number of elements of data in _p_a_r_m,
  374.                     where each element has the size specified by
  375.                     _p_a_r_m__f_o_r_m_a_t.  When _p_a_r_m is NULL, the value is 0.
  376.  
  377.           _s_t_a_t_u_s    An IN/OUT member that specifies the status of the
  378.                     conversion.  The initial value is
  379.                     XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____DDDDEEEEFFFFAAAAUUUULLLLTTTT.  The callback procedure can set
  380.                     this member to one of the following values:
  381.  
  382.                     XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____DDDDEEEEFFFFAAAAUUUULLLLTTTT
  383.                               This value means that the widget class
  384.                               conversion procedure, if any, is called
  385.                               after the callback procedures return.
  386.                               If the widget class conversion procedure
  387.                               produces any data, it overwrites the
  388.                               data provided by the callback procedures
  389.                               in the _v_a_l_u_emember.
  390.  
  391.  
  392.  
  393.      Page 6                                         (printed 10/24/98)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))
  401.  
  402.  
  403.  
  404.                     XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____MMMMEEEERRRRGGGGEEEE
  405.                               This value means that the widget class
  406.                               conversion procedure, if any, is called
  407.                               after the callback procedures return.
  408.                               If the widget class conversion procedure
  409.                               produces any data, it appends its data
  410.                               to the data provided by the callback
  411.                               procedures in the _v_a_l_u_e member.  This
  412.                               value is intended for use with targets
  413.                               that result in lists of data, such as
  414.                               _T_A_R_G_E_T_S.
  415.  
  416.                     XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____DDDDOOOONNNNEEEE
  417.                               This value means that the callback
  418.                               procedure has successfully finished the
  419.                               conversion.  The widget class conversion
  420.                               procedure, if any, is not called after
  421.                               the callback procedures return.
  422.  
  423.                     XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____RRRREEEEFFFFUUUUSSSSEEEE
  424.                               This value means that the callback
  425.                               procedure has terminated the conversion
  426.                               process without completing the requested
  427.                               conversion.  The widget class conversion
  428.                               procedure, if any, is not called after
  429.                               the callback procedures return.
  430.  
  431.           _v_a_l_u_e     An IN/OUT parameter that contains any data that
  432.                     the callback procedure produces as a result of the
  433.                     conversion.  The initial value is NULL.  If the
  434.                     callback procedure sets this member, it must
  435.                     ensure that the _t_y_p_e, _f_o_r_m_a_t, and _l_e_n_g_t_h members
  436.                     correspond to the data in _v_a_l_u_e.  The callback
  437.                     procedure is responsible for allocating, but not
  438.                     for freeing, memory when it sets this member.
  439.  
  440.           _t_y_p_e      An IN/OUT parameter that indicates the type of the
  441.                     data in the _v_a_l_u_e member.  The initial value is
  442.                     _I_N_T_E_G_E_R.
  443.  
  444.           _f_o_r_m_a_t    An IN/OUT parameter that specifies whether the
  445.                     data in _v_a_l_u_e should be viewed as a list of _c_h_a_r,
  446.                     _s_h_o_r_t, or _l_o_n_g quantities.  The initial value is
  447.                     8.  The callback procedure can set this member to
  448.                     8 (for a list of _c_h_a_r), 16 (for a list of _s_h_o_r_t),
  449.                     or 32 (for a list of _l_o_n_g).
  450.  
  451.           _l_e_n_g_t_h    An IN/OUT member that specifies the number of
  452.                     elements of data in _v_a_l_u_e, where each element has
  453.                     the size symbolized by _f_o_r_m_a_t.  The initial value
  454.                     is 0.
  455.  
  456.  
  457.  
  458.  
  459.      Page 7                                         (printed 10/24/98)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))
  467.  
  468.  
  469.  
  470.           A pointer to the following callback structure is passed to
  471.           the XXXXmmmmNNNNddddeeeessssttttiiiinnnnaaaattttiiiioooonnnnCCCCaaaallllllllbbbbaaaacccckkkk procedures:
  472.  
  473.           typedef struct
  474.           {
  475.                   int _r_e_a_s_o_n;
  476.                   XEvent *_e_v_e_n_t;
  477.                   Atom _s_e_l_e_c_t_i_o_n;
  478.                   XtEnum _o_p_e_r_a_t_i_o_n;
  479.                   int _f_l_a_g_s;
  480.                   XtPointer _t_r_a_n_s_f_e_r__i_d;
  481.                   XtPointer _d_e_s_t_i_n_a_t_i_o_n__d_a_t_a;
  482.                   XtPointer _l_o_c_a_t_i_o_n__d_a_t_a;
  483.                   Time _t_i_m_e;
  484.           } XmDestinationCallbackStruct;
  485.  
  486.           _r_e_a_s_o_n    Indicates why the callback was invoked.
  487.  
  488.           _e_v_e_n_t     Points to the _X_E_v_e_n_t that triggered the callback.
  489.                     It can be NULL.
  490.  
  491.           _s_e_l_e_c_t_i_o_n Indicates the selection for which data transfer is
  492.                     being requested.  Possible values are _C_L_I_P_B_O_A_R_D,
  493.                     _P_R_I_M_A_R_Y, _S_E_C_O_N_D_A_R_Y, and ____MMMMOOOOTTTTIIIIFFFF____DDDDRRRROOOOPPPP.
  494.  
  495.           _o_p_e_r_a_t_i_o_n Indicates the type of transfer operation
  496.                     requested.
  497.  
  498.                        +o  When the selection is _P_R_I_M_A_R_Y, possible
  499.                           values are XXXXmmmmMMMMOOOOVVVVEEEE, XXXXmmmmCCCCOOOOPPPPYYYY, and XXXXmmmmLLLLIIIINNNNKKKK.
  500.  
  501.                        +o  When the selection is _S_E_C_O_N_D_A_R_Y or
  502.                           _C_L_I_P_B_O_A_R_D, possible values are XXXXmmmmCCCCOOOOPPPPYYYY and
  503.                           XXXXmmmmLLLLIIIINNNNKKKK.
  504.  
  505.                        +o  When the selection is ____MMMMOOOOTTTTIIIIFFFF____DDDDRRRROOOOPPPP, possible
  506.                           values are XXXXmmmmMMMMOOOOVVVVEEEE, XXXXmmmmCCCCOOOOPPPPYYYY, XXXXmmmmLLLLIIIINNNNKKKK, and
  507.                           XXXXmmmmOOOOTTTTHHHHEEEERRRR.  A value of XXXXmmmmOOOOTTTTHHHHEEEERRRR means that the
  508.                           callback procedure must get further
  509.                           information from the
  510.                           XXXXmmmmDDDDrrrrooooppppPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt in the
  511.                           _d_e_s_t_i_n_a_t_i_o_n__d_a_t_a member.
  512.  
  513.           _f_l_a_g_s     Indicates whether or not the destination widget is
  514.                     also the source of the data to be transferred.
  515.                     Following are the possible values:
  516.  
  517.                     XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____NNNNOOOONNNNEEEE
  518.                               The destination widget is not the source
  519.                               of the data to be transferred.
  520.  
  521.                     XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____SSSSAAAAMMMMEEEE
  522.  
  523.  
  524.  
  525.      Page 8                                         (printed 10/24/98)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))
  533.  
  534.  
  535.  
  536.                               The destination widget is the source of
  537.                               the data to be transferred.
  538.  
  539.           ttttrrrraaaannnnssssffffeeeerrrr____iiiidddd
  540.                     Serves as a unique ID to identify the transfer
  541.                     transaction.
  542.  
  543.           _d_e_s_t_i_n_a_t_i_o_n__d_a_t_a
  544.                     Contains information about the destination.  When
  545.                     the selection is ____MMMMOOOOTTTTIIIIFFFF____DDDDRRRROOOOPPPP, the callback
  546.                     procedures are called by the drop site's
  547.                     XXXXmmmmNNNNddddrrrrooooppppPPPPrrrroooocccc, and _d_e_s_t_i_n_a_t_i_o_n__d_a_t_ais a pointer to
  548.                     the XXXXmmmmDDDDrrrrooooppppPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt passed to the
  549.                     XXXXmmmmNNNNddddrrrrooooppppPPPPrrrroooocccc procedure.  When the selection is
  550.                     _S_E_C_O_N_D_A_R_Y, _d_e_s_t_i_n_a_t_i_o_n__d_a_t_a is an Atom
  551.                     representing a target recommmended by the
  552.                     selection owner for use in converting the
  553.                     selection.  Otherwise, _d_e_s_t_i_n_a_t_i_o_n__d_a_t_a is NULL.
  554.  
  555.           llllooooccccaaaattttiiiioooonnnn____ddddaaaattttaaaa
  556.                     Contains information about the location where data
  557.                     is to be transferred.  The value is always NULL
  558.                     when the selection is _S_E_C_O_N_D_A_R_Y or _C_L_I_P_B_O_A_R_D.  If
  559.                     the value is NULL, the data is to be inserted at
  560.                     the widget's cursor position. llllooooccccaaaattttiiiioooonnnn____ddddaaaattttaaaa is
  561.                     only valid for the duration of a transfer. Once
  562.                     _X_m_T_r_a_n_s_f_e_r_D_o_n_e procedures start to be called,
  563.                     llllooooccccaaaattttiiiioooonnnn____ddddaaaattttaaaa will no longer be stable.
  564.  
  565.           _t_i_m_e      Indicates the time when the transfer operation
  566.                     began.
  567.  
  568.         TTTTrrrraaaannnnssssllllaaaattttiiiioooonnnnssss
  569.           XmDrawingArea inherits translations from XmManager.  Before
  570.           calling the XmManager actions, all events in the inherited
  571.           translations except <<<<BBBBttttnnnnMMMMoooottttiiiioooonnnn>>>>, <<<<EEEEnnnntttteeeerrrrWWWWiiiinnnnddddoooowwww>>>>,
  572.           <<<<LLLLeeeeaaaavvvveeeeWWWWiiiinnnnddddoooowwww>>>>, <<<<FFFFooooccccuuuussssIIIInnnn>>>>, and <<<<FFFFooooccccuuuussssOOOOuuuutttt>>>> also call the
  573.           DrawingAreaInput() action.
  574.  
  575.           XmDrawingArea has the following additional translations.
  576.           The following key names are listed in the X standard key
  577.           event translation table syntax.  This format is the one used
  578.           by Motif to specify the widget actions corresponding to a
  579.           given key.  A brief overview of the format is provided under
  580.           VVVViiiirrrrttttuuuuaaaallllBBBBiiiinnnnddddiiiinnnnggggssss(3).  For a complete description of the
  581.           format, please refer to the X Toolkit Instrinsics
  582.           Documentation.
  583.  
  584.           <<<<BBBBttttnnnnDDDDoooowwwwnnnn>>>>:
  585.                     DrawingAreaInput()
  586.  
  587.           <<<<BBBBttttnnnnUUUUpppp>>>>:  DrawingAreaInput()
  588.  
  589.  
  590.  
  591.      Page 9                                         (printed 10/24/98)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX))))
  599.  
  600.  
  601.  
  602.           <<<<KKKKeeeeyyyyDDDDoooowwwwnnnn>>>>:
  603.                     DrawingAreaInput() ManagerGadgetKeyInput()
  604.  
  605.           <<<<KKKKeeeeyyyyUUUUpppp>>>>:  DrawingAreaInput()
  606.  
  607.         AAAAccccttttiiiioooonnnn RRRRoooouuuuttttiiiinnnneeeessss
  608.           The XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa action routines are
  609.  
  610.           DrawingAreaInput():
  611.                     Unless the event takes place in a gadget, calls
  612.                     the callbacks for XXXXmmmmNNNNiiiinnnnppppuuuuttttCCCCaaaallllllllbbbbaaaacccckkkk
  613.  
  614.           ManagerGadgetKeyInput():
  615.                     Causes the current gadget to process a keyboard
  616.                     event
  617.  
  618.         AAAAddddddddiiiittttiiiioooonnnnaaaallll BBBBeeeehhhhaaaavvvviiiioooorrrr
  619.           The XmDrawingArea widget has the following additional
  620.           behavior:
  621.  
  622.           <<<<EEEExxxxppppoooosssseeee>>>>: Calls the callbacks for XXXXmmmmNNNNeeeexxxxppppoooosssseeeeCCCCaaaallllllllbbbbaaaacccckkkk
  623.  
  624.           <<<<WWWWiiiiddddggggeeeetttt RRRReeeessssiiiizzzzeeee>>>>:
  625.                     Calls the callbacks for XXXXmmmmNNNNrrrreeeessssiiiizzzzeeeeCCCCaaaallllllllbbbbaaaacccckkkk
  626.  
  627.         VVVViiiirrrrttttuuuuaaaallll BBBBiiiinnnnddddiiiinnnnggggssss
  628.           The bindings for virtual keys are vendor specific.  For
  629.           information about bindings for virtual buttons and keys, see
  630.           VVVViiiirrrrttttuuuuaaaallllBBBBiiiinnnnddddiiiinnnnggggssss(3).
  631.  
  632.      RRRREEEELLLLAAAATTTTEEEEDDDD
  633.           CCCCoooommmmppppoooossssiiiitttteeee(3), CCCCoooonnnnssssttttrrrraaaaiiiinnnntttt(3), CCCCoooorrrreeee(3),
  634.           XXXXmmmmCCCCrrrreeeeaaaatttteeeeDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa(3), and XXXXmmmmMMMMaaaannnnaaaaggggeeeerrrr(3).
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.      Page 10                                        (printed 10/24/98)
  658.  
  659.  
  660.  
  661.